package com.ingenio.business;

import java.util.Date;
import java.util.List;

import com.ingenio.dao.DetalleRecuentoAdapter;

public class Recuento {
	private Integer idRecuento;
	private Date fechaRecuento;
	private boolean bloqueaStock;
	private Usuario usuarioPlan;
	private Usuario usuarioRec;
	private Recuento recuentoAnterior;
	private EstadoRecuento estadoRecuento;
	private List<DetalleRecuento> detallesRecuento;
	
	public Recuento(Integer idRecuento, Date fechaRecuento,
			boolean bloqueaStock, Usuario usuarioPlan, Usuario usuarioRec,
			Recuento recuentoAnterior, EstadoRecuento estadoRecuento) {
		super();
		this.idRecuento = idRecuento;
		this.fechaRecuento = fechaRecuento;
		this.bloqueaStock = bloqueaStock;
		this.usuarioPlan = usuarioPlan;
		this.usuarioRec = usuarioRec;
		this.recuentoAnterior = recuentoAnterior;
		this.estadoRecuento = estadoRecuento;
	}

	public Integer getIdRecuento() {
		return idRecuento;
	}

	public void setIdRecuento(Integer idRecuento) {
		this.idRecuento = idRecuento;
	}

	public Date getFechaRecuento() {
		return fechaRecuento;
	}

	public void setFechaRecuento(Date fechaRecuento) {
		this.fechaRecuento = fechaRecuento;
	}

	public boolean isBloqueaStock() {
		return bloqueaStock;
	}

	public void setBloqueaStock(boolean bloqueaStock) {
		this.bloqueaStock = bloqueaStock;
	}

	public Usuario getUsuarioPlan() {
		return usuarioPlan;
	}

	public void setUsuarioPlan(Usuario usuarioPlan) {
		this.usuarioPlan = usuarioPlan;
	}

	public Usuario getUsuarioRec() {
		return usuarioRec;
	}

	public void setUsuarioRec(Usuario usuarioRec) {
		this.usuarioRec = usuarioRec;
	}

	public Recuento getRecuentoAnterior() {
		return recuentoAnterior;
	}

	public void setRecuentoAnterior(Recuento recuentoAnterior) {
		this.recuentoAnterior = recuentoAnterior;
	}

	public EstadoRecuento getEstadoRecuento() {
		return estadoRecuento;
	}

	public void setEstadoRecuento(EstadoRecuento estadoRecuento) {
		this.estadoRecuento = estadoRecuento;
	}

	public List<DetalleRecuento> getDetallesRecuento() {
		return detallesRecuento;
	}

	public void setDetallesRecuento(List<DetalleRecuento> detallesRecuento) {
		this.detallesRecuento = detallesRecuento;
	}
	
	public boolean recuentoCerraro() {
		DetalleRecuentoAdapter dra = new DetalleRecuentoAdapter();
		List<DetalleRecuento> detalle;
		try {
			detalle = dra.devolverDetalle(this.idRecuento);
			for(DetalleRecuento dr: detalle){
				if (dr.getEstadoDetalle().getIdEstadoDetalleRecuento() == 1){ // si existe alguna linea del detalle en estado 1: Pendiente de recuento
					return false;
				}
			}
		} 
		catch (Exception e) {
			e.printStackTrace();
		}
		return true;
	}
}
